package com.dhcc.bpm.modules.orga.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dhcc.bpm.modules.api.vo.ApiVO;
import com.dhcc.bpm.modules.orga.entity.AppApi;
import com.dhcc.bpm.modules.orga.vo.AppApiVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName AppApiMapper
 * @Description 应用API关系表 Mapper 接口
 * @Author daina
 * @Date 2020/2/24 19:25
 * @Version V1.0
 * @Copyright: 2020 东华软件 . All rights reserved.
 */
public interface AppApiMapper extends BaseMapper<AppApi> {

	/**
	 * @Description 自定义分页
	 * @Author daina
	 * @Date 10:09 2020/2/25
	 * @param page
	 * @param appApi
	 * @return java.util.List<com.dhcc.bpm.modules.orga.vo.AppApiVO>
	 **/
	List<AppApiVO> selectAppApiPage(IPage page, AppApiVO appApi);
	/**
	 * @Description 根据apiiid查询api
	 * @Author daina
	 * @Date 15:52 2020/4/26
	 * @param page
	 * @param appApi
	 * @return java.util.List<com.dhcc.bpm.modules.orga.vo.AppApiVO>
	 **/
	List<AppApiVO> listApiByAppId(IPage page, AppApiVO appApi);
	/**
	 * @Description 查询api 已下线产品
	 * @Author daina
	 * @Date 15:51 2020/4/26
	 * @param page
	 * @param appApi
	 * @return java.util.List<com.dhcc.bpm.modules.orga.vo.AppApiVO>
	 **/
	List<AppApiVO> listApiByApiId(IPage page, AppApiVO appApi);
	/**
	 * @Description 查询api列表
	 * @Author daina
	 * @Date 10:09 2020/2/25
	 * @param id
	 * @return java.util.List<com.dhcc.bpm.modules.orga.vo.AppApiVO>
	 **/
    List<AppApiVO> findApiList(@Param("id") Long id, @Param("approvalEnv") String approvalEnv);
	/**
	 * @Description 查询api列表信息
	 * @Author daina
	 * @Date 10:09 2020/2/25
	 * @param appId
	 * @return java.util.List<com.dhcc.bpm.modules.orga.vo.AppApiVO>
	 **/
	List<AppApiVO> findApiListByAppId(Long appId);

	/**
	 * @Description 查询api列表信息
	 * @Author daina
	 * @Date 10:09 2020/2/25
	 * @param opcProductId
	 * @return java.util.List<com.dhcc.bpm.modules.orga.vo.AppApiVO>
	 **/
	List<ApiVO> getApiListByProductId(Long opcAppId, Long opcProductId);

	/**
	 * @Description 根据appId批量删除
	 * @Author sjm
	 * @Date 14:32 2020/3/20 0020
	 * @param opcAppId
	 * @return int
	 **/
    int deleteByAppId(@Param("opcAppId") Long opcAppId, @Param("approvalEnv") String approvalEnv);

	/**
	 * @Description 根据appId批量删除
	 * @Author sjm
	 * @Date 14:32 2020/3/20 0020
	 * @param opcApiId
	 * @return int
	 **/
    int deleteByApiId(@Param("opcApiId") String opcApiId, @Param("productId") String productId, @Param("approvalEnv") String approvalEnv);
	/**
	 * @Description 根据appId批量删除
	 * @Author sjm
	 * @Date 14:32 2020/3/20 0020
	 * @param appId
	 * @return int
	 **/
    int deleteAppApi(@Param("opcApiId") String opcApiId, @Param("appId") String appId, @Param("approvalEnv") String approvalEnv);

	AppApi findByAppApiId(@Param("opcApiId") String opcApiId, @Param("appId") String appId, @Param("approvalEnv") String approvalEnv);

	/**
     * @Description 根据appId批量查询集合
     * @Author sjm
     * @Date 14:53 2020/3/20 0020
     * @param opcAppId
     * @return java.util.List<com.dhcc.bpm.modules.orga.entity.AppApi>
     **/
	List<AppApi> selectByAppId(Long opcAppId);

	/**
	 * @Description 根据apiId查询集合
	 * @Author sjm
	 * @Date 14:52 2020/3/20 0020
	 * @param opcApiId
	 * @return java.util.List<com.dhcc.bpm.modules.orga.entity.AppApi>
	 **/
	List<AppApi> selectByApiId(Long opcApiId);

	/**
	 * @Description 根据apiId查询集合
	 * @Author sjm
	 * @Date 14:52 2020/3/20 0020
	 * @param opcApiId,env
	 * @return java.util.List<com.dhcc.bpm.modules.orga.entity.AppApi>
	 **/
	List<AppApi> selectByApiIdEnv(@Param("opcApiId") Long opcApiId, @Param("productId") Long productId, @Param("env") String env);

	/**
	 * @Description 根据productId查询集合
	 * @Author daina
	 * @Date 15:51 2020/4/28
	 * @param opcProductId
	 * @return java.util.List<com.dhcc.bpm.modules.orga.entity.AppApi>
	 **/
	List<AppApi> selectByProductId(Long opcProductId);
	List<AppApi> selectAppApiList( AppApi appApi);
	/**
	 * @Description 更新
	 * @Author wjh
	 * @Date 2020-10-30 14:33:52
	 * @return int
	 **/
	int updateAppApi(AppApi appApi);
	int delAppApiByAppId(@Param("appIds") List<Long> appIds);
	int delCaseApiByCaseIds( @Param("caseIds")List<Long> caseIds);
	int delCaseById( @Param("ids")List<Long> ids);
	List<Long> selectAppCaseByAppIds(@Param("appIds") List<Long> appIds);

	/**
	 * @Description 根据appId批量删除
	 * @Author sjm
	 * @Date 14:31 2020/3/20 0020
	 * @param opcAppId
	 * @return int
	 **/
	int deleteAppApiByAppId(Long opcAppId);

	/**
	 * @Description 根据appId查询集合
	 * @Author sjm
	 * @Date 14:52 2020/3/20 0020
	 * @param opcAppId
	 * @param validStatus
	 * @return java.util.List<com.dhcc.bpm.modules.orga.entity.AppApi>
	 **/
	List<AppApi> selectByAppIdStatus(@Param("opcAppId") String opcAppId, @Param("validStatus") String validStatus);
}
